package com.practise.coffee.dao;

import com.practise.coffee.entity.coffee.TargetCoffee;
import com.practise.coffee.entity.other.ExtentMaterial;
import com.practise.coffee.enums.CoffeeType;

/**
 * 泡coffee的公用接口
 * @author:lhz
 * @date:2019/2/18 09:03
 */
public interface MakeDao {

	/**
	 * 咖啡类型(口味)
	 *
	 * @return
	 */
	CoffeeType type();

	/**
	 * 放入咖啡粉
	 */
	void pouringCoffeePowder();

	/**
	 * 加入水
	 *
	 * @return
	 */
	void pouringWater(int degree);

	/**
	 * 搅拌
	 *
	 * @return
	 */
	void stiring();

	/**
	 * 冰冻
	 *
	 * @return
	 */
	void freeze();

	/**
	 * 拉花
	 *
	 * @return
	 */
	void flushFlower();

	/**
	 * 添加材料
	 */
	<T extends ExtentMaterial>void addMaterial(T t);
	/**
	 * 制作成功
	 */
	TargetCoffee makeSuccess();
	/**
	 * 售卖
	 */
	void sell();
}
